﻿using System.Data;
using System.Data.SqlClient;

namespace DataAccess
{
    public class ReportesDataAccess
    {
        public string ObtenerReporteFaltantes(int anio, int mesInicio, int mesFin)
        {
            var textoDatosReporte = SqlHelper.ExecuteScalar(CommandType.StoredProcedure, "ObtenerReporteFaltante",
                    new[] { new SqlParameter("Anio", anio), new SqlParameter("MesInicio", mesInicio), new SqlParameter("MesFin", mesFin) });
            
            return textoDatosReporte.ToString();
        }

        public DataTable ObtenerResumenDeFaltantes(int anio, int mesInicio, int mesFin)
        {
            var tablaResumenFaltantes = new DataTable();
            using (IDataReader dataReader = SqlHelper.ExecuteReader(CommandType.StoredProcedure, "ObtenerResumenDeFaltantes",
                    new[] { new SqlParameter("Anio", anio), new SqlParameter("MesInicio", mesInicio), new SqlParameter("MesFin", mesFin) }))
            {
                tablaResumenFaltantes.Load(dataReader);
            }
            return tablaResumenFaltantes;
        }

        public string ObtenerReporteSobrantes(int anio, int mesInicio, int mesFin)
        {
            var textoDatosReporte = SqlHelper.ExecuteScalar(CommandType.StoredProcedure, "ObtenerReporteSobrantes",
                    new[] { new SqlParameter("Anio", anio), new SqlParameter("MesInicio", mesInicio), new SqlParameter("MesFin", mesFin) });

            return textoDatosReporte.ToString();
        }

        public DataTable ObtenerResumenDeSobrantes(int anio, int mesInicio, int mesFin)
        {
            var tablaResumenVentas = new DataTable();
            using (IDataReader dataReader = SqlHelper.ExecuteReader(CommandType.StoredProcedure, "ObtenerResumenDeSobrantes",
                    new[] { new SqlParameter("Anio", anio), new SqlParameter("MesInicio", mesInicio), new SqlParameter("MesFin", mesFin) }))
            {
                tablaResumenVentas.Load(dataReader);
            }
            return tablaResumenVentas;
        }

        public string ObtenerReporteVentasAlContado(int anio, int mesInicio, int mesFin)
        {
            var textoDatosReporte = SqlHelper.ExecuteScalar(CommandType.StoredProcedure, "ObtenerReporteVentasAlContado",
                    new[] { new SqlParameter("Anio", anio),  new SqlParameter("MesInicio", mesInicio), new SqlParameter("MesFin", mesFin) });

            return textoDatosReporte.ToString();
        }

        public string ObtenerReporteVentasAlCredito(int anio, int mesInicio, int mesFin)
        {
            var textoDatosReporte = SqlHelper.ExecuteScalar(CommandType.StoredProcedure, "ObtenerReporteVentasAlCredito",
                    new[] { new SqlParameter("Anio", anio), new SqlParameter("MesInicio", mesInicio), new SqlParameter("MesFin", mesFin) });

            return textoDatosReporte.ToString();
        }

        public DataTable ObtenerResumenDeVentas(int anio, int mesInicio, int mesFin)
        {
            var tablaResumenFaltantes = new DataTable();
            using (IDataReader dataReader = SqlHelper.ExecuteReader(CommandType.StoredProcedure, "ObtenerResumenDeFaltantes",
                    new[] { new SqlParameter("Anio", anio), new SqlParameter("MesInicio", mesInicio), new SqlParameter("MesFin", mesFin) }))
            {
                tablaResumenFaltantes.Load(dataReader);
            }
            return tablaResumenFaltantes;
        }

        /*public Colaborador ObtenerColaboradorPorDocumento(int documento)
        {
            var colaborador = new Colaborador();

            using (IDataReader dataReader = SqlHelper.ExecuteReader(CommandType.StoredProcedure, "ObtenerColaboradorPorDocumento",
                    new[] { new SqlParameter("Documento", documento) }))
            {
                while (dataReader.Read())
                {
                    colaborador = CreateEntity(dataReader);
                }
                dataReader.Close();
            }
            return colaborador;
        }

        public IList<Colaborador> ObtenerColaboradores()
        {
            var colaborador = new List<Colaborador>();

            using (IDataReader dataReader = SqlHelper.ExecuteReader(CommandType.StoredProcedure, "ObtenerColaboradores"))
            {
                while (dataReader.Read())
                {
                    colaborador.Add(CreateEntity(dataReader));
                }
                dataReader.Close();
            }
            return colaborador;
        }

        public void InsertarColaborador(Colaborador colaborador)
        {
            SqlHelper.ExecuteNonQuery(CommandType.StoredProcedure, "InsertarColaborador",
                new[]
                {
                    new SqlParameter("DocumentoIdentidad", colaborador.DocumentoIdentidad),
                    new SqlParameter("TipoDocumento", colaborador.TipoDocumento),
                    new SqlParameter("Nombres", colaborador.Nombres),
                    new SqlParameter("Apellidos", colaborador.Apellidos),
                    new SqlParameter("Telefono", colaborador.Telefono),
                    new SqlParameter("Domicilio", colaborador.Domicilio)
                });
        }*/


    }
}

